package com.gustavo.sistema.service;

import java.util.List;

import javax.inject.Inject;

import com.gustavo.sistema.dao.ErroDeBancoDeDados;
import com.gustavo.sistema.dao.jdbc.VendaDaoJdbc;
import com.gustavo.sistema.model.Venda;

public class VendaService extends Service {

	@Inject
	private VendaDaoJdbc vendaDaoJdbc;

	public void inserir(Venda venda) throws ErroNaFaseService {

		try {
			beginTransaction();

			vendaDaoJdbc.inserirVenda(venda);

			commitTransaction();

		} catch (ErroDeBancoDeDados e) {
			rollbackTransaction();
			throw new ErroNaFaseService(e);
		}
	}

	public void atualizar(Venda venda) throws ErroNaFaseService {

		try {
			beginTransaction();

			vendaDaoJdbc.atualizarVenda(venda);

			commitTransaction();

		} catch (ErroDeBancoDeDados e) {
			rollbackTransaction();
			throw new ErroNaFaseService(e);
		}
	}

	public void excluir(Integer id) throws ErroNaFaseService {

		try {
			beginTransaction();

			vendaDaoJdbc.excluirVenda(id);

			commitTransaction();

		} catch (ErroDeBancoDeDados e) {
			rollbackTransaction();
			throw new ErroNaFaseService(e);
		}
	}

	public List<Venda> listarvendas() throws ErroNaFaseService {

		try {
			return vendaDaoJdbc.listarVendas();

		} catch (ErroDeBancoDeDados e) {
			rollbackTransaction();
			throw new ErroNaFaseService(e);
		}
	}
}
